Transforming Programs into Recursive Functions
نویسندگان
چکیده
This paper presents a new proof-assistant based approach to program verification: programs are translated, via fully-automatic deduction, into tail-recursive function defined in the logic of a theorem prover. This approach improves on well-established methods based on Hoare logic and verification condition generation (VCG) by removing the need to annotate programs with assertions, making the proof natural to the theorem prover and being easier to implement than a trusted VCG. Our tool has been implemented in the HOL4 theorem prover.
منابع مشابه
Proving program refinements and transformations
In this thesis we develop a theory of program refinement and equivalence which can be used to develop practical tools for program development, analysis and modification. The theory is based on the use of general specifications and an imperative kernel language. We use weakest preconditions, expressed as formulae in infinitary logic to prove refinement and equivalence between programs. The kerne...
متن کاملAn Analytical Method Forparallelization of Recursive
Received (received date) Revised (revised date) Communicated by Christian Lengauer ABSTRACT Programming with parallel skeletons is an attractive framework because it encourages programmers to develop eecient and portable parallel programs. However, extracting parallelism from sequential speciications and constructing eecient parallel programs using the skeletons are still diicult tasks. In this...
متن کاملAn Analytical Method for Parallelization of Recursive Functions
Programming with parallel skeletons is an attractive framework because it encourages programmers to develop e cient and portable parallel programs. However, extracting parallelism from sequential speci cations and constructing e cient parallel programs using the skeletons are still di cult tasks. In this paper, we propose an analytical approach to transforming recursive functions on general rec...
متن کاملTheory of Linear Equations Applied to Program Transformation
In this paper is presented a technique for transforming a class of recursive equations called linear equations into iterative equations. Linear equations are characterized by involving at the most one recursive call for any invocation. In contrast to the conventional techniques, the scheme of program transformation presented here involves finding the solution of the given linear equation and tr...
متن کاملImproved Graph-Based Lambda Lifting
Lambda lifting is a technique for transforming a program with local function definitions into a program consisting only of global function definitions. The best known lambda lifting algorithm computes the minimal set of extraneous parameters needed by each function in O(n) steps by solving a system of set equations which are recursive if the functions in the program are mutually recursive. Mutu...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Electr. Notes Theor. Comput. Sci.
دوره 240 شماره
صفحات -
تاریخ انتشار 2009